package com.itlong.cloud.app.service;

import com.itlong.cloud.POJO.VO.app.engineer.AppEngineerUserInfoVO;
import com.itlong.cloud.POJO.VO.app.engineer.AppEngineerUserOwnProjectVO;

import java.util.List;

/**
 * <desc>
         工程版APP服务接口。
 * <desc/>
 *
 * @createDate 2017/11/6.
 */
public interface IAppEngineerService {


     /**
      * <desc>
      *      工程版APP登录。
      * <desc/>
      *
      * @param userInfoPO 工程人员账户信息
      * @return AppUserCacheVO  返回对象
      * @author shengen.T
      * @createDate 2017/11/6
      */
     AppEngineerUserInfoVO logEngineerLoginInfo(AppEngineerUserInfoVO userInfoPO)  throws  Exception;

      /**
       * <desc>
       *      根据用户Id 获取项目信息列表。
       * <desc/>
       *
       * @param  userId 用户Id
       * @return 返回该用户的项目
       * @author shengen.T
       * @createDate 2017/11/6
       */
     List<AppEngineerUserOwnProjectVO> getUserOwnProjectInfo(String userId) throws Exception;


    /**
     * <desc>
     *      从缓存获取用户信息
     * </desc>
     *
     * @param token
     * @return
     * @author shengen.T
     * @createDate 2017/11/8
     */
    AppEngineerUserInfoVO retrieve(String token);

    /**
     * <desc>
     *    工程版APP,更新密码
     * </desc>
     * @param userId
     * @param oldPswd 加密后的旧密码
     * @param currentPswd 加密后的新密码
     * @return
     * @author shnegen.T
     * @createDate 2017/10/11
     */
    Integer updatePswd(String userId,String oldPswd,String currentPswd) throws Exception;


     /**
      * <desc>
      *      获取工程版APP登录信息。
      * <desc/>
      *
      * @param  phoneNo 工程人员账号
      * @return
      * @author shengen.T
      * @createDate 2018-01-20
      */
    AppEngineerUserInfoVO getEngineerAppUserLogin(String phoneNo) throws Exception;


     /**
      * <desc>
      *      验证工程账号权限信息。
      * <desc/>
      *
      * @param  userId 用户ID
      * @return
      * @author shengen.T
      * @createDate 2018-01-20
      */
    Integer checkEngineerLogin(String userId) throws Exception;

}
